package com.lgx.common.web.util;

import java.util.ArrayList;
import java.util.List;

import com.lgx.common.entity.Dictionary;

/**
 * 
 * @author acer
 *
 */
public class DictUtils {
	
	/**
	 * permission_type ，权限类型数据字典标识
	 * 0--操作权限
	 * 1--菜单权限
	 */
	public static final String PERMISSION_TYPE = "PERMISSION_TYPE";
	
	/**
	 * show_type,是否显示标识
	 * 0--是
	 * 1--否
	 */
	public static final String SHOW_TYPE = "SHOW_TYPE";
	
	/**
	 * user_type,用户类型标示
	 */
	public static final String USER_TYPE = "USER_TYPE";
	
	/**
	 * send_msg,短信状态标识
	 * 0--发送
	 * 1--不发送
	 */
	public static final String SEND_MSG = "SEND_MSG";
	public static final String IS_SEND = "IS_SEND";
	public static final String MERCHANT_STAR = "MERCHANT_STAR";
	
	/**
	 * onsale,商品是否上架标识
	 * 0--是
	 * 1--否
	 */
	public static final String PRODUCT_ONSALE = "PRODUCT_ONSALE";
	
	/**
	 * color,商品可选颜色
	 * 1--红色
	 * 2--绿色
	 * 3--蓝色
	 */
	public static final String PRODUCT_COLOR = "PRODUCT_COLOR";
	
	/**
	 * clothessize,商品可选衣服尺码
	 * 1--160
	 * 2--170
	 * 3--180
	 */
	public static final String PRODUCT_CLOTHESSIZE = "PRODUCT_CLOTHESSIZE";
	
	/**
	 * shoesize,商品可选鞋子尺码
	 * 1--38
	 * 2--39
	 * 3--40
	 */
	public static final String PRODUCT_SHOESIZE = "PRODUCT_SHOESIZE";
	
	/**
	 * fareway,商品运费支付方式
	 * 1--特快专递，支付宝支付
	 * 2--货到付邮
	 * 3--自取
	 */
	public static final String PRODUCT_FAREWAY = "PRODUCT_FAREWAY";
	
	/**
	 * product_area,商品分区
	 * 1--共享良品
	 * 2--共享优品
	 * 3--共享名品
	 * 4--共享奢品
	 * 5--共享同城
	 */
	public static final String PRODUCT_AREA = "PRODUCT_AREA";
	
	/**
	 * sex_type,性别类型标识
	 * 0--女士
	 * 1--先生
	 */
	public static final String SEX_TYPE = "SEX_TYPE";
	
	/**
	 * rechargeinfo_type,充值类型
	 * 1--手动充值
	 * 2--支付宝充值
	 * 3--网银充值
	 */
	public static final String RECHARGEINFO_TYPE = "RECHARGEINFO_TYPE";
	
	/**
	 * rechargeinfo_status,充值状态
	 * 1--未确认
	 * 2--已确认
	 */
	public static final String RECHARGEINFO_STATUS = "RECHARGEINFO_STATUS";
	
	/**
	 * 返利类型
	 * 01--商家
	 * 02--推广站
	 * 03--推广中心
	 * 04--运营中心
	 */
	public static final String  FLLX_LEVEL = "FLLX_LEVEL";
	
	
	/**
	 * 返利状态
	 * 1--初始化
	 * 2--已兑换
	 */
	public static final String FLZT_INIT = "FLZT_INIT";
	
	
	/**
	 * 积分卡状态
	 * 1:未用
	 * 2:已用
	 * 3:锁定
	 * 4:未锁
	 */
	public static final String SCORECARD_STRUT = "SCORECARD_STRUT";
	
	/**
	 * consumerinfo_type,消费类型
	 * 1--本卡消费
	 * 2--外卡消费
	 */
	public static final String CONSUMERINFO_TYPE = "CONSUMERINFO_TYPE";
	
	/**
	 * first_type,首页类型
	 * 1--商品
	 * 2--品牌
	 * 3--商品分类
	 * 4--广告
	 * 5--商家广告
	 */
	public static final String FIRST_TYPE = "FIRST_TYPE";
	
	/**
	 * 1、联盟商家
	 * 2、推广站
	 * 3、推广中心
	 * 4、运营中心
	 * 5、总公司（机构管理）
	 */
	public static final String ORGANIZATION_TYPE = "ORGANIZATION_TYPE";
	
	/**
	 * 订单状态
	 * 0、购物车
	 * 1、提交
	 * 2、付款
	 * 3、发货
	 * 4、确认
	 * 5、过期
	 * 6、取消订单 
	 * 7、申请退货
	 * 8、客服确认退货申请
	 * 9、客服拒绝退货申请
	 * 10、退货成功
	 * 11、缺货
	 */
	public static final String ORDER_TYPE = "ORDER_TYPE";
	
	/**
	 * 收货地址状态
	 * 0、不是默认地址
	 * 1、是默认地址
	 */
	public static final String DEFAULT_ADDRESS = "DEFAULT_ADDRESS";
	
	/**
	 * 退货原因
	 * 1、商品质量问题
	 * 2、收到的商品不符
	 * 3、退运费
	 * 4、发票问题
	 * 5、其他
	 */
	 public static final String RETURN_REASONS = "RETURN_REASONS";
	
	/**
	 * 会员等级
	 * 1	会员				0
	 * 2	普通会员			1000
	 * 3	绿VIP会员		10000
	 * 4	粉VIP会员		12000
	 * 5	红VIP会员		14000
	 * 6	银VIP会员		16000
	 * 7	金VIP会员		18000
	 * 8	绿钻石会员		21000
	 * 9	粉钻石会员		24000
	 * 10	红钻石会员		27000
	 * 11	银钻石会员		30000
	 * 12	金钻石会员		33000
	 * 13	绿乐冠会员		38000
	 * 14	粉乐冠会员		46000
	 * 15	红乐冠会员		54000
	 * 16	银乐冠会员		62000
	 * 17	金乐冠会员		70000
	 * 18	乐共享TOP会员	75000
	 */
	public static final String USER_DEGREE = "USER_DEGREE";
	
	
	public static List<Dictionary> kinds = new ArrayList<Dictionary>();
	
	public static List<List<Dictionary>> dicts = new ArrayList<List<Dictionary>>();
	
	/**
	 * 根据标识获取字典
	 * @param kind 标识
	 * @return
	 */
	public static List<Dictionary> getDictListByKind(String kind){
		int index = 0;
		for(Dictionary dict : kinds){
			if(kind.equals(dict.getKind())){
				break;
			}
			index ++;
		}
		
		if(index < dicts.size())
			return dicts.get(index);
		else
			return new ArrayList<Dictionary>();
	}
	
	/**
	 * @param kind
	 * @param code
	 * @return
	 */
	public static String getDictNameByKindAndCode(String kind,String code){
		List<Dictionary> dicts = getDictListByKind(kind);
		for(Dictionary dict : dicts){
			if(code.equals(dict.getCode())){
				return dict.getName();
			}
		}
		return "";
	}
	
	/**
	 * @param kind
	 * @param code
	 * @return
	 */
	public static Dictionary getDictByKindAndCode(String kind,String code){
		List<Dictionary> dicts = getDictListByKind(kind);
		for(Dictionary dict : dicts){
			if(code.equals(dict.getCode())){
				return dict;
			}
		}
		return null;
	}
	
}
